package yxy.apple.util.scheduler;

public abstract class Scheduler<S extends Schedulable> {

	/**
	 * 添加一个计划任务
	 * 
	 * @param schedulable
	 * @param delay，以当前时间为起点延迟delay后触发，单位毫秒
	 * @return
	 */
	public abstract ScheduledFuture schedule(S schedulable, int delay);

	/**
	 * 当前已存在的计划任务数量
	 * 
	 * @return
	 */
	public abstract int scheduled();

	/**
	 * 清空计划任务，被清理的计划任务不会主动触发cancelled回调
	 */
	public abstract void clear();
}
